package util;

import zemberek.core.io.Chars;

public class HarfTr extends Chars {
	/*
	 * harfler=a,b,c,ç,d,e,f,g,ğ,h,ı,i,j,k,l,m,n,o,ö,p,r,s,ş,t,u,ü,v,y,z,â,î,û,q,
	 * w,x,.,-,'," sesli=a,e,ı,i,o,ö,u,ü ince-sesli=e,i,ö,ü kalin-sesli=a,ı,ö,ü
	 * duz-sesli=a,e,ı,i yuvarlak-sesli=o,ö,u,ü sertSessiz=f,s,t,k,ç,ş,h,p
	 * yumuşakSessiz=b,c,d,g,ğ,j,k,l,m,n,r,v,y,z
	 */
	private String content;
	private int size;

	private static final String trHarfler = "abcçdefgğhıijklmnoöprsştuüvyz";
	private static final String yabanciHarfler = "wxq";

	private static final String sesliHarfler = "aeıioöuü";
	private static final String inceSesliHarfler = "eiöü";
	private static final String kalinSesliHarfler = "aıöü";
	private static final String duzSesliHarfler = "aeıi";
	private static final String yuvarlakSesliHarfler = "oöuü";

	private static final String sessizHarfler = "bcçdfgğhjklmnprsştvyz";
	private static final String yumusakSessizHarfler = "bcdgğjklmnrvyz";
	private static final String sertSessizHarfler = "fstkçşhp";

	private static final String sertSureksizSessizHarfler = "pçtk";
	private static final String yumusakSureksizSessizHarfler = "bcdgğ";

	private boolean sesli = false;
	private boolean inceSesli = false;
	private boolean kalinSesli = false;
	private boolean duzSesli = false;
	private boolean yuvarlakSesli = false;

	private boolean sessiz = false;
	private boolean yumusakSessiz = false;
	private boolean sertSessiz = false;

	private boolean yumusakSureksizSessiz = false;
	private boolean sertSureksizSessiz = false;

	private boolean buyukHarf = false;

	private boolean yabanciHarf = false;

	public HarfTr(String content) {
		// TODO Auto-generated constructor stub
		setContent(content);
		if (sesliHarfler.contains(content)) {
			setSesli(true);
			if (inceSesliHarfler.contains(content))
				setInceSesli(true);
			if (kalinSesliHarfler.contains(content))
				setKalinSesli(true);
			if (duzSesliHarfler.contains(content))
				setDuzSesli(true);
			if (yuvarlakSesliHarfler.contains(content))
				setYuvarlakSesli(true);
		} else if (sessizHarfler.contains(content)) {
			setSessiz(true);
			if (yumusakSessizHarfler.contains(content))
				setYumusakSessiz(true);
			if (sertSessizHarfler.contains(content))
				setSertSessiz(true);
			if (yumusakSureksizSessizHarfler.contains(content))
				setYumusakSureksizSessiz(true);
			if (sertSureksizSessizHarfler.contains(content))
				setSertSureksizSessiz(true);
		} else if (yabanciHarfler.contains(content)) {
			setYabanciHarf(true);
		}
	}
	public static boolean isYumusakHarf(String str) {
		// TODO Auto-generated method stub
		for (int i = 0; i < str.length(); i++) {
			char aCharacter;
			aCharacter = str.charAt(i);
			for (int j = 0; j < yumusakSureksizSessizHarfler.length(); j++) {
				char bCharacter;
				bCharacter = yumusakSureksizSessizHarfler.charAt(j);
				if (aCharacter == bCharacter) {
					return true;
				}
			}
		}
		return false;
	}
	public String getContent() {
		return content;
	}

	public void setContent(String content) {
		this.content = content;
	}

	public int getSize() {
		return size;
	}

	public void setSize(int size) {
		this.size = size;
	}

	public HarfTr() {
		content = null;
		size = 0;
	}


	public boolean isSesli() {
		return sesli;
	}

	public void setSesli(boolean sesli) {
		this.sesli = sesli;
	}

	public boolean isInceSesli() {
		return inceSesli;
	}

	public void setInceSesli(boolean inceSesli) {
		this.inceSesli = inceSesli;
	}

	public boolean isKalinSesli() {
		return kalinSesli;
	}

	public void setKalinSesli(boolean kalinSesli) {
		this.kalinSesli = kalinSesli;
	}

	public boolean isDuzSesli() {
		return duzSesli;
	}

	public void setDuzSesli(boolean duzSesli) {
		this.duzSesli = duzSesli;
	}

	public boolean isYuvarlakSesli() {
		return yuvarlakSesli;
	}

	public void setYuvarlakSesli(boolean yuvarlakSesli) {
		this.yuvarlakSesli = yuvarlakSesli;
	}

	public boolean isSessiz() {
		return sessiz;
	}

	public void setSessiz(boolean sessiz) {
		this.sessiz = sessiz;
	}

	public boolean isYumusakSessiz() {
		return yumusakSessiz;
	}

	public void setYumusakSessiz(boolean yumusakSessiz) {
		this.yumusakSessiz = yumusakSessiz;
	}

	public boolean isSertSessiz() {
		return sertSessiz;
	}

	public void setSertSessiz(boolean sertSessiz) {
		this.sertSessiz = sertSessiz;
	}

	public boolean isYumusakSureksizSessiz() {
		return yumusakSureksizSessiz;
	}

	public void setYumusakSureksizSessiz(boolean yumusakSureksizSessiz) {
		this.yumusakSureksizSessiz = yumusakSureksizSessiz;
	}

	public boolean isSertSureksizSessiz() {
		return sertSureksizSessiz;
	}

	public void setSertSureksizSessiz(boolean sertSureksizSessiz) {
		this.sertSureksizSessiz = sertSureksizSessiz;
	}

	public boolean isYabanciHarf() {
		return yabanciHarf;
	}

	public void setYabanciHarf(boolean yabanciHarf) {
		this.yabanciHarf = yabanciHarf;
	}

}
